home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / reqtoolsdev.lha / ReqTools / demo / demo.asm next >
Assembly Source File  |  1996-04-21  |  20KB  |  1,031 lines

  1. **********************************
  2. *                                *
  3. *  reqtools.library (V38)        *
  4. *                                *
  5. *  Release 2.5                   *
  6. *                                *
  7. *  (c) 1991-1994 Nico François   *
  8. *      1995-1996 Nico François   *
  9. *                                *
  10. *  Assembly version by           *
  11. *  Dirk Vangestel                *
  12. *                                *
  13. *  demo.asm                      *
  14. *                                *
  15. *  This source is public domain  *
  16. *  in all respects.              *
  17. *                                *
  18. **********************************
  19.  
  20.     INCLUDE    "exec/funcdef.i"
  21.     INCLUDE    "exec/exec_lib.i"
  22.     INCLUDE    "exec/libraries.i"
  23.     INCLUDE    "libraries/dos_lib.i"
  24.     INCLUDE    "libraries/reqtools.i"
  25.     INCLUDE    "libraries/reqtools_lib.i"
  26.     INCLUDE    "utility/tagitem.i"
  27.     INCLUDE    "intuition/intuition.i"
  28.  
  29. FALSE    equ    0        ;dummy for C-compatibility
  30. TRUE    equ    1
  31.  
  32. start
  33.     move.l    $4.w,a6
  34.     lea    ReqName(pc),a1
  35.     move.l    #REQTOOLSVERSION,d0
  36.     jsr    _LVOOpenLibrary(a6)
  37.     move.l    d0,ReqBase
  38.     beq.w    NoReqtools
  39.     move.l    d0,a6
  40.  
  41.     lea    Text1(pc),a1
  42.     lea    Text2(pc),a2
  43.     sub.l    a3,a3
  44.     sub.l    a4,a4
  45.     sub.l    a0,a0
  46.     jsr    _LVOrtEZRequestA(a6)
  47.  
  48.     lea    Text3(pc),a1
  49.     lea    Text4(pc),a2
  50.     sub.l    a3,a3
  51.     sub.l    a4,a4
  52.     sub.l    a0,a0
  53.     jsr    _LVOrtEZRequestA(a6)
  54.  
  55.     lea    Text5(pc),a1
  56.     lea    Text6(pc),a2
  57.     sub.l    a3,a3
  58.     sub.l    a4,a4
  59.     sub.l    a0,a0
  60.     jsr    _LVOrtEZRequestA(a6)
  61.  
  62.     lea    Buffer(pc),a1
  63.     lea    Text7(pc),a0
  64. .loop1
  65.     move.b    (a0)+,(a1)+
  66.     bne.s    .loop1
  67.     moveq    #127,d0
  68.     lea    Buffer(pc),a1
  69.     lea    Text8(pc),a2
  70.     sub.l    a3,a3
  71.     move.l    #TAG_END,a0
  72.     jsr    _LVOrtGetStringA(a6)
  73.     tst.l    d0
  74.     bne.s    .input1
  75.     lea    Text9(pc),a1
  76.     lea    Text10(pc),a2
  77.     sub.l    a3,a3
  78.     sub.l    a4,a4
  79.     sub.l    a0,a0
  80.     jsr    _LVOrtEZRequestA(a6)
  81.     bra.s    .ok1
  82. .input1
  83.     lea    Text11(pc),a1
  84.     lea    Text12(pc),a2
  85.     sub.l    a3,a3
  86.     lea    Buffer(pc),a0
  87.     lea    Array(pc),a4
  88.     move.l    a0,(a4)
  89.     sub.l    a0,a0
  90.     jsr    _LVOrtEZRequestA(a6)
  91. .ok1
  92.  
  93.     lea    Buffer(pc),a1
  94.     moveq    #127,d0
  95.     lea    Text8(pc),a2
  96.     sub.l    a3,a3
  97.     lea    Tags1(pc),a0
  98.     jsr    _LVOrtGetStringA(a6)
  99.     subq    #2,d0
  100.     bne.s    .ok2
  101.     lea    Text13(pc),a1
  102.     lea    Text14(pc),a2
  103.     sub.l    a3,a3
  104.     sub.l    a4,a4
  105.     sub.l    a0,a0
  106.     jsr    _LVOrtEZRequestA(a6)
  107. .ok2
  108.  
  109.     lea    Buffer(pc),a1
  110.     moveq    #127,d0
  111.     lea    Text8(pc),a2
  112.     sub.l    a3,a3
  113.     lea    Tags2(pc),a0
  114.     jsr    _LVOrtGetStringA(a6)
  115.     subq    #2,d0
  116.     bne.s    .ok3
  117.     lea    Text15(pc),a1
  118.     lea    Text16(pc),a2
  119.     sub.l    a3,a3
  120.     sub.l    a4,a4
  121.     sub.l    a0,a0
  122.     jsr    _LVOrtEZRequestA(a6)
  123. .ok3
  124.  
  125.     lea    Text17(pc),a1
  126.     lea    Text6(pc),a2
  127.     sub.l    a3,a3
  128.     sub.l    a4,a4
  129.     sub.l    a0,a0
  130.     jsr    _LVOrtEZRequestA(a6)
  131.  
  132.     lea    LongNum(pc),a1
  133.     lea    Text18(pc),a2
  134.     sub.l    a3,a3
  135.     lea    Tags3(pc),a0
  136.     jsr    _LVOrtGetLongA(a6)
  137.     tst.l    d0
  138.     bne.s    .input2
  139.     lea    Text9(pc),a1
  140.     lea    Text10(pc),a2
  141.     sub.l    a3,a3
  142.     sub.l    a4,a4
  143.     sub.l    a0,a0
  144.     jsr    _LVOrtEZRequestA(a6)
  145.     bra.s    .ok5
  146. .input2
  147.     lea    Text19(pc),a1
  148.     lea    Text20(pc),a2
  149.     sub.l    a3,a3
  150.     lea    Array(pc),a4
  151.     move.l    LongNum(pc),d0
  152.     move.l    d0,(a4)+
  153.     cmpi.l    #666,d0
  154.     bne.s    .nodevil
  155.     lea    Text21(pc),a0
  156.     move.l    a0,(a4)+
  157.     bra.s    .ok4
  158. .nodevil
  159.     lea    Null(pc),a0
  160.     move.l    a0,(a4)+
  161. .ok4
  162.     lea    Array(pc),a4
  163.     sub.l    a0,a0
  164.     jsr    _LVOrtEZRequestA(a6)
  165. .ok5
  166.  
  167.     lea    Text22(pc),a1
  168.     lea    Text23(pc),a2
  169.     sub.l    a3,a3
  170.     sub.l    a4,a4
  171.     sub.l    a0,a0
  172.     jsr    _LVOrtEZRequestA(a6)
  173.  
  174.     lea    Text24(pc),a1
  175.     lea    Text25(pc),a2
  176.     sub.l    a3,a3
  177.     sub.l    a4,a4
  178.     sub.l    a0,a0
  179.     jsr    _LVOrtEZRequestA(a6)
  180.  
  181. .ret
  182.     lea    Text26(pc),a1
  183.     lea    Text27(pc),a2
  184.     sub.l    a3,a3
  185.     sub.l    a4,a4
  186.     sub.l    a0,a0
  187.     jsr    _LVOrtEZRequestA(a6)
  188.     tst.l    d0
  189.     bne.s    .ok6
  190.     lea    Text28(pc),a1
  191.     lea    Text29(pc),a2
  192.     sub.l    a3,a3
  193.     sub.l    a4,a4
  194.     sub.l    a0,a0
  195.     jsr    _LVOrtEZRequestA(a6)
  196.     bra.s    .ret
  197. .ok6
  198.     lea    Text30(pc),a1
  199.     lea    Text31(pc),a2
  200.     sub.l    a3,a3
  201.     sub.l    a4,a4
  202.     sub.l    a0,a0
  203.     jsr    _LVOrtEZRequestA(a6)
  204.  
  205.     lea    Text32(pc),a1
  206.     lea    Text33(pc),a2
  207.     sub.l    a3,a3
  208.     sub.l    a4,a4
  209.     sub.l    a0,a0
  210.     jsr    _LVOrtEZRequestA(a6)
  211.     cmpi.l    #FALSE,d0
  212.     bne.s    .ok7
  213.     lea    Text34(pc),a1
  214.     lea    Text35(pc),a2
  215.     bra.s    .ok9
  216. .ok7
  217.     cmpi.l    #TRUE,d0
  218.     bne.s    .ok8
  219.     lea    Text36(pc),a1
  220.     lea    Text31(pc),a2
  221.     bra.s    .ok9
  222. .ok8
  223.     lea    Text37(pc),a1
  224.     lea    Text38(pc),a2
  225. .ok9
  226.     sub.l    a3,a3
  227.     sub.l    a4,a4
  228.     sub.l    a0,a0
  229.     jsr    _LVOrtEZRequestA(a6)
  230.  
  231.     lea    Text39(pc),a1
  232.     lea    Text40(pc),a2
  233.     sub.l    a3,a3
  234.     sub.l    a4,a4
  235.     lea    Tags4(pc),a0
  236.     jsr    _LVOrtEZRequestA(a6)
  237.     lea    Text41(pc),a1
  238.     lea    Text42(pc),a2
  239.     sub.l    a3,a3
  240.     sub.l    a0,a0
  241.     lea    Array(pc),a4
  242.     move.l    d0,(a4)
  243.     jsr    _LVOrtEZRequestA(a6)
  244.  
  245.     lea    Text43(pc),a1
  246.     lea    Text44(pc),a2
  247.     sub.l    a3,a3
  248.     sub.l    a4,a4
  249.     lea    Tags5(pc),a0
  250.     jsr    _LVOrtEZRequestA(a6)
  251.  
  252.     lea    Text45(pc),a1
  253.     lea    Text46(pc),a2
  254.     sub.l    a3,a3
  255.     lea    Array(pc),a4
  256.     move.l    #5,(a4)+
  257.     lea    Buffer(pc),a0
  258.     move.l    a0,(a4)+
  259.     move.l    #"five",(a0)+
  260.     clr.b    (a0)+
  261.     lea    Array(pc),a4
  262.     lea    Tags5(pc),a0
  263.     jsr    _LVOrtEZRequestA(a6)
  264.  
  265.     lea    Text47(pc),a1
  266.     lea    Text48(pc),a2
  267.     sub.l    a3,a3
  268.     sub.l    a4,a4
  269.     lea    Tags6(pc),a0
  270.     jsr    _LVOrtEZRequestA(a6)
  271.     cmpi.l    #DISKINSERTED,d0
  272.     bne.s    .ok10
  273.     lea    Text49(pc),a1
  274.     bra.s    .ok11
  275. .ok10
  276.     lea    Text50(pc),a1
  277. .ok11
  278.     lea    Text51(pc),a2
  279.     sub.l    a3,a3
  280.     sub.l    a4,a4
  281.     sub.l    a0,a0
  282.     jsr    _LVOrtEZRequestA(a6)
  283.  
  284.     lea    Text52(pc),a1
  285.     lea    Text53(pc),a2
  286.     sub.l    a3,a3
  287.     sub.l    a4,a4
  288.     lea    Tags7(pc),a0
  289.     jsr    _LVOrtEZRequestA(a6)
  290.  
  291.     lea    Text54(pc),a1
  292.     lea    Text55(pc),a2
  293.     sub.l    a3,a3
  294.     sub.l    a4,a4
  295.     lea    Tags8(pc),a0
  296.     jsr    _LVOrtEZRequestA(a6)
  297.  
  298.     lea    Text56(pc),a1
  299.     lea    Text57(pc),a2
  300.     sub.l    a3,a3
  301.     sub.l    a4,a4
  302.     lea    Tags5(pc),a0
  303.     jsr    _LVOrtEZRequestA(a6)
  304.  
  305.     move.l    #RT_FILEREQ,d0
  306.     sub.l    a0,a0
  307.     jsr    _LVOrtAllocRequestA(a6)
  308.     move.l    d0,filereq
  309.     bne.s    .ok12
  310.     lea    Text58(pc),a1
  311.     lea    Text14(pc),a2
  312.     sub.l    a3,a3
  313.     sub.l    a4,a4
  314.     sub.l    a0,a0
  315.     jsr    _LVOrtEZRequestA(a6)
  316.     bra.w    .ok13
  317. .ok12
  318.     move.l    filereq(pc),a1
  319.     lea    filename(pc),a2
  320.     clr.b    (a2)
  321.     lea    Text59(pc),a3
  322.     sub.l    a0,a0
  323.     jsr    _LVOrtFileRequestA(a6)
  324.     tst.l    d0
  325.     beq.s    .ok14
  326.     lea    Text60(pc),a1
  327.     lea    Text61(pc),a2
  328.     sub.l    a3,a3
  329.     lea    Array(pc),a4
  330.     lea    filename(pc),a0
  331.     move.l    a0,(a4)+
  332.     move.l    filereq(pc),a0
  333.     move.l    rtfi_Dir(a0),(a4)+
  334.     lea    Array(pc),a4
  335.     bra.s    .ok15
  336. .ok14
  337.     lea    Text62(pc),a1
  338.     lea    Text63(pc),a2
  339.     sub.l    a3,a3
  340.     sub.l    a4,a4
  341. .ok15
  342.     sub.l    a0,a0
  343.     jsr    _LVOrtEZRequestA(a6)
  344.  
  345.     lea    Text64(pc),a1
  346.     lea    Text65(pc),a2
  347.     sub.l    a3,a3
  348.     sub.l    a4,a4
  349.     lea    Tags5(pc),a0
  350.     jsr    _LVOrtEZRequestA(a6)
  351.  
  352.     move.l    filereq(pc),a1
  353.     lea    filename(pc),a2
  354.     lea    Text66(pc),a3
  355.     lea    Tags9(pc),a0
  356.     jsr    _LVOrtFileRequestA(a6)
  357.     move.l    d0,flist
  358.     beq.s    .ok16
  359.     lea    Text67(pc),a1
  360.     lea    Text68(pc),a2
  361.     sub.l    a3,a3
  362.     lea    Array(pc),a4
  363.     move.l    flist(pc),a0
  364.     move.l    rtfl_Name(a0),(a4)
  365.     sub.l    a0,a0
  366.     jsr    _LVOrtEZRequestA(a6)
  367.  
  368. ;Traverse all selected files.
  369. ;This is not tested, but should work fine!
  370. ;    move.l    flist(pc),a0
  371. ;.next
  372. ;    move.l    rtfl_Name(a0),filename
  373. ;    move.l    rtfl_StrLen(a0),length
  374. ;    move.l    rtfl_Next(a0),a0
  375. ;    bne.s    .next
  376.  
  377.     move.l    flist(pc),a0
  378.     jsr    _LVOrtFreeFileList(a6)
  379. .ok16
  380.     move.l    filereq(pc),a1
  381.     jsr    _LVOrtFreeRequest(a6)
  382. .ok13
  383.  
  384.     lea    Text69(pc),a1
  385.     lea    Text70(pc),a2
  386.     sub.l    a3,a3
  387.     sub.l    a4,a4
  388.     lea    Tags5(pc),a0
  389.     jsr    _LVOrtEZRequestA(a6)
  390.  
  391.     move.l    #RT_FILEREQ,d0
  392.     sub.l    a0,a0
  393.     jsr    _LVOrtAllocRequestA(a6)
  394.     move.l    d0,filereq
  395.     bne.s    .ok17
  396.     lea    Text58(pc),a1
  397.     lea    Text14(pc),a2
  398.     sub.l    a3,a3
  399.     sub.l    a4,a4
  400.     sub.l    a0,a0
  401.     jsr    _LVOrtEZRequestA(a6)
  402.     bra.w    .ok18
  403. .ok17
  404.     move.l    filereq(pc),a1
  405.     lea    filename(pc),a2
  406.     clr.b    (a2)
  407.     lea    Text71(pc),a3
  408.     lea    Tags10(pc),a0
  409.     jsr    _LVOrtFileRequestA(a6)
  410.     tst.l    d0
  411.     beq.s    .ok19
  412.     lea    Text72(pc),a1
  413.     lea    Text73(pc),a2
  414.     lea    Array(pc),a4
  415.     move.l    filereq(pc),a0
  416.     move.l    rtfi_Dir(a0),(a4)
  417.     bra.s    .ok20
  418. .ok19
  419.     lea    Text74(pc),a1
  420.     lea    Text63(pc),a2
  421.     sub.l    a4,a4
  422. .ok20
  423.     sub.l    a3,a3
  424.     sub.l    a0,a0
  425.     jsr    _LVOrtEZRequestA(a6)
  426.     move.l    filereq(pc),a1
  427.     jsr    _LVOrtFreeRequest(a6)
  428. .ok18
  429.  
  430.     lea    Text75(pc),a1
  431.     lea    Text76(pc),a2
  432.     sub.l    a3,a3
  433.     sub.l    a4,a4
  434.     sub.l    a0,a0
  435.     jsr    _LVOrtEZRequestA(a6)
  436.  
  437.     move.l    #RT_FONTREQ,d0
  438.     sub.l    a0,a0
  439.     jsr    _LVOrtAllocRequestA(a6)
  440.     move.l    d0,fontreq
  441.     bne.s    .ok21
  442.     lea    Text58(pc),a1
  443.     lea    Text14(pc),a2
  444.     sub.l    a3,a3
  445.     sub.l    a4,a4
  446.     sub.l    a0,a0
  447.     jsr    _LVOrtEZRequestA(a6)
  448.     bra.s    .ok22
  449. .ok21
  450.     move.l    d0,a1
  451.     move.l    #FREQF_STYLE+FREQF_COLORFONTS,rtfo_Flags(a1)
  452.     lea    Text77(pc),a3
  453.     sub.l    a0,a0
  454.     jsr    _LVOrtFontRequestA(a6)
  455.     tst.l    d0
  456.     beq.s    .ok23
  457.     lea    Text78(pc),a1
  458.     lea    Text61(pc),a2
  459.     lea    Array(pc),a4
  460.     move.l    fontreq(pc),a0
  461.     move.l    rtfo_Attr+ta_Name(a0),(a4)+
  462.     moveq    #0,d0
  463.     move.w    rtfo_Attr+ta_YSize(a0),d0
  464.     move.l    d0,(a4)+
  465.     lea    Array(pc),a4
  466.     sub.l    a0,a0
  467.     bra.s    .ok24
  468. .ok23
  469.     lea    Text79(pc),a1
  470.     lea    Text80(pc),a2
  471.     sub.l    a4,a4
  472.     lea    Tags5(pc),a0
  473. .ok24
  474.     sub.l    a3,a3
  475.     jsr    _LVOrtEZRequestA(a6)
  476.     move.l    fontreq(pc),a1
  477.     jsr    _LVOrtFreeRequest(a6)
  478. .ok22
  479.  
  480.     lea    Text81(pc),a1
  481.     lea    Text46(pc),a2
  482.     sub.l    a3,a3
  483.     sub.l    a4,a4
  484.     lea    Tags5(pc),a0
  485.     jsr    _LVOrtEZRequestA(a6)
  486.  
  487.     lea    Text82(pc),a2
  488.     sub.l    a3,a3
  489.     sub.l    a0,a0
  490.     jsr    _LVOrtPaletteRequestA(a6)
  491.     cmpi.l    #-1,d0
  492.     bne.s    .ok25
  493.     lea    Text83(pc),a1
  494.     lea    Text84(pc),a2
  495.     sub.l    a4,a4
  496.     bra.s    .ok26
  497. .ok25
  498.     lea    Text85(pc),a1
  499.     lea    Text86(pc),a2
  500.     lea    Array(pc),a4
  501.     move.l    d0,(a4)
  502. .ok26
  503.     sub.l    a3,a3
  504.     jsr    _LVOrtEZRequestA(a6)
  505.  
  506.     lea    Text87(pc),a1
  507.     lea    Text88(pc),a2
  508.     sub.l    a3,a3
  509.     sub.l    a4,a4
  510.     lea    Tags5(pc),a0
  511.     jsr    _LVOrtEZRequestA(a6)
  512.  
  513.     move.l    #RT_FILEREQ,d0
  514.     sub.l    a0,a0
  515.     jsr    _LVOrtAllocRequestA(a6)
  516.     move.l    d0,filereq
  517.     bne.s    .ok27
  518.     lea    Text58(pc),a1
  519.     lea    Text14(pc),a2
  520.     sub.l    a3,a3
  521.     sub.l    a4,a4
  522.     sub.l    a0,a0
  523.     jsr    _LVOrtEZRequestA(a6)
  524.     bra.s    .ok28
  525. .ok27
  526.     move.l    d0,a1
  527.     sub.l    a2,a2
  528.     lea    Text89(pc),a3
  529.     lea    Tags11(pc),a0
  530.     jsr    _LVOrtFileRequestA(a6)
  531.     beq.s    .ok29
  532.     lea    Text90(pc),a1
  533.     lea    Text61(pc),a2
  534.     move.l    filereq(pc),a0
  535.     lea    Array(pc),a4
  536.     move.l    rtfi_Dir(a0),(a4)
  537.     bra.s    .ok30
  538. .ok29
  539.     lea    Text91(pc),a1
  540.     lea    Text92(pc),a2
  541.     sub.l    a4,a4
  542. .ok30
  543.     sub.l    a3,a3
  544.     sub.l    a0,a0
  545.     jsr    _LVOrtEZRequestA(a6)
  546.     move.l    filereq(pc),a1
  547.     jsr    _LVOrtFreeRequest(a6)
  548. .ok28
  549.  
  550.     lea    Text93(pc),a1
  551.     lea    Text46(pc),a2
  552.     sub.l    a3,a3
  553.     sub.l    a4,a4
  554.     lea    Tags5(pc),a0
  555.     jsr    _LVOrtEZRequestA(a6)
  556.  
  557.     move.l    $4.w,a5
  558.     move.l    LIB_VERSION(a5),d0
  559.     cmpi.l    #37,d0
  560.     bcc.s    .ok31
  561.     lea    Text94(pc),a1
  562.     lea    Text95(pc),a2
  563.     sub.l    a3,a3
  564.     sub.l    a4,a4
  565.     lea    Tags5(pc),a0
  566.     jsr    _LVOrtEZRequestA(a6)
  567.     bra.w    .ok32
  568. .ok31
  569.     move.l    #RT_SCREENMODEREQ,d0
  570.     sub.l    a0,a0
  571.     jsr    _LVOrtAllocRequestA(a6)
  572.     move.l    d0,scrmodereq
  573.     bne.s    .ok33
  574.     lea    Text58(pc),a1
  575.     lea    Text14(pc),a2
  576.     sub.l    a3,a3
  577.     sub.l    a4,a4
  578.     sub.l    a0,a0
  579.     jsr    _LVOrtEZRequestA(a6)
  580.     bra.s    .ok32
  581. .ok33
  582.     move.l    d0,a1
  583.     lea    Text96(pc),a3
  584.     lea    Tags12(pc),a0
  585.     jsr    _LVOrtScreenModeRequestA(a6)
  586.     tst.l    d0
  587.     beq.s    .ok37
  588.     lea    Text97(pc),a1
  589.     lea    Text61(pc),a2
  590.     lea    Array(pc),a4
  591.     move.l    scrmodereq(pc),a0
  592.     move.l    rtsc_DisplayID(a0),(a4)+
  593.     moveq    #0,d0
  594.     move.w    rtsc_DisplayWidth(a0),d0
  595.     move.l    d0,(a4)+
  596.     moveq    #0,d0
  597.     move.w    rtsc_DisplayHeight(a0),d0
  598.     move.l    d0,(a4)+
  599.     moveq    #0,d0
  600.     move.w    rtsc_DisplayDepth(a0),d0
  601.     move.l    d0,(a4)+
  602.     moveq    #0,d0
  603.     move.w    rtsc_OverscanType(a0),d0
  604.     move.l    d0,(a4)+
  605.     move.l    rtsc_AutoScroll(a0),d0
  606.     beq.s    .ok35
  607.     lea    Ontxt(pc),a0
  608.     bra.s    .ok36
  609. .ok35
  610.     lea    Offtxt(pc),a0
  611. .ok36
  612.     move.l    a0,(a4)+
  613.     lea    Array(pc),a4
  614.     sub.l    a0,a0
  615.     bra.s    .ok34
  616. .ok37
  617.     lea    Text98(pc),a1
  618.     lea    Text80(pc),a2
  619.     lea    Tags5(pc),a0
  620.     sub.l    a4,a4
  621. .ok34
  622.     sub.l    a3,a3
  623.     jsr    _LVOrtEZRequestA(a6)
  624.     move.l    scrmodereq(pc),a1
  625.     jsr    _LVOrtFreeRequest(a6)
  626. .ok32
  627.  
  628.     lea    Text99(pc),a1
  629.     lea    Text100(pc),a2
  630.     sub.l    a3,a3
  631.     sub.l    a4,a4
  632.     lea    Tags5(pc),a0
  633.     jsr    _LVOrtEZRequestA(a6)
  634.  
  635.     move.l    ReqBase(pc),a1
  636.     move.l    $4.w,a6
  637.     jsr    _LVOCloseLibrary(a6)
  638.     moveq    #0,d0
  639.     rts
  640.  
  641. NoReqtools
  642.     move.l    $4.w,a6
  643.     lea    DosLib(pc),a1
  644.     jsr    _LVOOldOpenLibrary(a6)
  645.     move.l    d0,DosBase
  646.     move.l    d0,a6
  647.     jsr    _LVOOutput(a6)
  648.     move.l    d0,d1
  649.     move.l    #NoReq,d2
  650.     move.l    #Ontxt-NoReq,d3
  651.     jsr    _LVOWrite(a6)
  652.     move.l    a6,a1
  653.     move.l    $4.w,a6
  654.     jsr    _LVOCloseLibrary(a6)
  655.     moveq    #0,d0
  656.     rts
  657.  
  658. NoReq
  659.     dc.b    "You need reqtools.library V38 or higher!",10
  660.     dc.b    "Please install it in your Libs: directory.",10,0
  661. Ontxt
  662.     dc.b    "On",0
  663. Offtxt
  664.     dc.b    "Off",0
  665. Text1
  666.     dc.b    "Reqtools 2.0 Demo",10
  667.     dc.b    "~~~~~~~~~~~~~~~~~",10
  668.     dc.b    "'reqtools.library' offers several",10
  669.     dc.b    "different types of requesters:",0
  670. Text2
  671.     dc.b    "Let's see them",0
  672. Text3
  673.     dc.b    "NUMBER 1:",10,"The larch :-)",0
  674. Text4
  675.     dc.b    "Be serious!",0
  676. Text5
  677.     dc.b    "NUMBER 1:",10,"String requester",10
  678.     dc.b    "function: rtGetString()",0
  679. Text6
  680.     dc.b    "Show me",0
  681. Text7
  682.     dc.b    "A bit of text",0
  683. Text8
  684.     dc.b    "Enter anything:",0
  685. Text9
  686.     dc.b    "You entered nothing :-(",0
  687. Text10
  688.     dc.b    "I'm sorry",0
  689. Text11
  690.     dc.b    "You entered this string:",10,"%s",0
  691. Text12
  692.     dc.b    "So I did",0
  693. Text13
  694.     dc.b    "Yep, this is a new",10
  695.     dc.b    "ReqTools 2.0 feature!",0
  696. Text14
  697.     dc.b    "Oh boy!",0
  698. Text15
  699.     dc.b    "What!! You pressed abort!?!",10
  700.     dc.b    "You must be joking :-)",0
  701. Text16
  702.     dc.b    "Ok, Continue",0
  703. Text17
  704.     dc.b    "NUMBER 2:",10
  705.     dc.b    "Number requester",10
  706.     dc.b    "function: rtGetLong()",0
  707. Text18
  708.     dc.b    "Enter a number:",0
  709. Text19
  710.     dc.b    "The number you entered was:",10,"%ld%s",0
  711. Text20
  712.     dc.b    "So it was",0
  713. Text21
  714.     dc.b    " (you devil! :)",0
  715. Text22
  716.     dc.b    "NUMBER 3:",10
  717.     dc.b    "Message requester, the requester",10
  718.     dc.b    "you've been using all the time!",10
  719.     dc.b    "function: rtEZRequestA()",0
  720. Text23
  721.     dc.b    "Show me more",0
  722. Text24
  723.     dc.b    "Simplest usage: some body text and",10
  724.     dc.b    "a single centered gadget.",0
  725. Text25
  726.     dc.b    "Got it",0
  727. Text26
  728.     dc.b    "You can also use two gadgets to",10
  729.     dc.b    "ask the user something.",10
  730.     dc.b    "Do you understand?",0
  731. Text27
  732.     dc.b    "Of course|Not really",0
  733. Text28
  734.     dc.b    "You are not one of the brightest are you?",10
  735.     dc.b    "We'll try again...",0
  736. Text29
  737.     dc.b    "Ok",0
  738. Text30
  739.     dc.b    "Great, we'll continue then.",0
  740. Text31
  741.     dc.b    "Fine",0
  742. Text32
  743.     dc.b    "You can also put up a requester with",10
  744.     dc.b    "three choices.",10
  745.     dc.b    "How do you like the demo so far ?",0
  746. Text33
  747.     dc.b    "Great|So so|Rubbish",0
  748. Text34
  749.     dc.b    "Too bad, I really hoped you",10
  750.     dc.b    "would like it better.",0
  751. Text35
  752.     dc.b    "So what",0
  753. Text36
  754.     dc.b    "I'm glad you like it so much.",0
  755. Text37
  756.     dc.b    "Maybe if you run the demo again",10
  757.     dc.b    "you'll REALLY like it.",0
  758. Text38
  759.     dc.b    "Perhaps",0
  760. Text39
  761.     dc.b    "The number of responses is not limited to three",10
  762.     dc.b    "as you can see.  The gadgets are labeled with",10
  763.     dc.b    "the return code from rtEZRequestA().",10
  764.     dc.b    "Pressing Return will choose 4, note that",10
  765.     dc.b    "4's button text is printed in boldface.",0
  766. Text40
  767.     dc.b    "1|2|3|4|5|0",0
  768. Text41
  769.     dc.b    "You picked '%ld'.",0
  770. Text42
  771.     dc.b    "How true",0
  772. Text43
  773.     dc.b    "New for Release 2.0 of ReqTools (V38) is",10
  774.     dc.b    "the possibility to define characters in the",10
  775.     dc.b    "buttons as keyboard shortcuts.",10
  776.     dc.b    "As you can see these characters are underlined.",10
  777.     dc.b    "Pressing shift while still holding down the key",10
  778.     dc.b    "will cancel the shortcut.",10
  779.     dc.b    "Note that in other requesters a string gadget may",10
  780.     dc.b    "be active.  To use the keyboard shortcuts there",10
  781.     dc.b    "you have to keep the Right Amiga key pressed down.",0
  782. Text44
  783.     dc.b    "_Great|_Fantastic|_Swell|Oh _Boy",0
  784. Text45
  785.     dc.b    "You may also use C-style formatting codes in the body text.",10
  786.     dc.b    "Like this:",10,10
  787.     dc.b    "'The number %%ld is written %%s.' will give:",10,10
  788.     dc.b    "The number %ld is written %s.",10,10
  789.     dc.b    "if you also pass '5' and '",'"five"',"' to rtEZRequestA().",0
  790. Text46
  791.     dc.b    "_Proceed",0
  792. Text47
  793.     dc.b    "It is also possible to pass extra IDCMP flags",10
  794.     dc.b    "that will satisfy rtEZRequestA(). This requester",10
  795.     dc.b    "has had DISKINSERTED passed to it.",10
  796.     dc.b    "(Try inserting a disk).",0
  797. Text48
  798.     dc.b    "_Continue",0
  799. Text49
  800.     dc.b    "You inserted a disk.",0
  801. Text50
  802.     dc.b    "You used the 'Continue' gadget",10
  803.     dc.b    "to satisfy the requester.",0
  804. Text51
  805.     dc.b    "I did",0
  806. Text52
  807.     dc.b    "Finally, it is possible to specify the position",10
  808.     dc.b    "of the requester.",10
  809.     dc.b    "E.g. at the top left of the screen, like this.",10
  810.     dc.b    "This works for all requesters, not just rtEZRequestA()!",0
  811. Text53
  812.     dc.b    "_Amazing",0
  813. Text54
  814.     dc.b    "Alternatively, you can center the",10
  815.     dc.b    "requester on the screen.",10
  816.     dc.b    "Check out 'reqtools.doc' for all the possibilities.",0
  817. Text55
  818.     dc.b    "I'll do that",0
  819. Text56
  820.     dc.b    "NUMBER 4:",10
  821.     dc.b    "function: rtFileRequestA()",0
  822. Text57
  823.     dc.b    "_Demonstrate",0
  824. Text58
  825.     dc.b    "Out of memory!",0
  826. Text59
  827.     dc.b    "Pick a file",0
  828. Text60
  829.     dc.b    "You picked the file:",10,"'%s'",10
  830.     dc.b    "in directory:",10,"'%s'",0
  831. Text61
  832.     dc.b    "Right",0
  833. Text62
  834.     dc.b    "You didn't pick a file.",0
  835. Text63
  836.     dc.b    "No",0
  837. Text64
  838.     dc.b    "The file requester has the ability",10
  839.     dc.b    "to allow you to pick more than one",10
  840.     dc.b    "file (use Shift to extend-select).",10
  841.     dc.b    "Note the extra gadgets you get.",0
  842. Text65
  843.     dc.b    "_Interesting",0
  844. Text66
  845.     dc.b    "Pick some files",0
  846. Text67
  847.     dc.b    "You selected some files, this is",10
  848.     dc.b    "the first one:",10,"'%s'",10
  849.     dc.b    "All the files are returned as a linked",10
  850.     dc.b    "list (see demo.s and reqtools.i).",0
  851. Text68
  852.     dc.b    "Aha",0
  853. Text69
  854.     dc.b    "The file requester can be used",10
  855.     dc.b    "as a directory requester as well.",0
  856. Text70
  857.     dc.b    "Let's _see that",0
  858. Text71
  859.     dc.b    "Pick a directory",0
  860. Text72
  861.     dc.b    "You picked the directory:",10,"'%s'",0
  862. Text73
  863.     dc.b    "Right",0
  864. Text74
  865.     dc.b    "You didn't pick a directory.",0
  866. Text75
  867.     dc.b    "NUMBER 5:",10
  868.     dc.b    "Font requester",0
  869. Text76
  870.     dc.b    "Show",0
  871. Text77
  872.     dc.b    "Pick a font",0
  873. Text78
  874.     dc.b    "You picked the font:",10,"'%s'",10
  875.     dc.b    "with size:",10,"'%ld'",0
  876. Text79
  877.     dc.b    "You canceled.",10
  878.     dc.b    "Was there no font you liked ?",0
  879. Text80
  880.     dc.b    "_Nope",0
  881. Text81
  882.     dc.b    "NUMBER 6:",10
  883.     dc.b    "Palette requester",10
  884.     dc.b    "function: rtPaletteRequestA()",0
  885. Text82
  886.     dc.b    "Change palette",0
  887. Text83
  888.     dc.b    "You canceled.",10
  889.     dc.b    "No nice colors to be picked ?",0
  890. Text84
  891.     dc.b    "Nah",0
  892. Text85
  893.     dc.b    "You picked color number %ld.",0
  894. Text86
  895.     dc.b    "Sure did",0
  896. Text87
  897.     dc.b    "NUMBER 7: (ReqTools 2.0)",10
  898.     dc.b    "Volume requester",10
  899.     dc.b    "function: rtFileRequestA() with",10
  900.     dc.b    "          RTFI_VolumeRequest tag.",0
  901. Text88
  902.     dc.b    "_Show me",0
  903. Text89
  904.     dc.b    "Pick a volume",0
  905. Text90
  906.     dc.b    "You picked the volume:",10,"'%s'",0
  907. Text91
  908.     dc.b    "You didn't pick a volume.",0
  909. Text92
  910.     dc.b    "I did not",0
  911. Text93
  912.     dc.b    "NUMBER 8: (ReqTools 2.0)",10
  913.     dc.b    "Screen mode requester",10
  914.     dc.b    "function: rtScreenModeRequestA()",10
  915.     dc.b    "Only available on Kickstart 2.0!",0
  916. Text94
  917.     dc.b    "Your Amiga doesn't seem to have",10
  918.     dc.b    "Kickstart 2.0 in ROM so I am not",10
  919.     dc.b    "able to show you the Screen mode",10
  920.     dc.b    "requester.",10
  921.     dc.b    "So upgrade to 2.0 *now* :-)",0
  922. Text95
  923.     dc.b    "_Allright",0
  924. Text96
  925.     dc.b    "Pick a screen mode:",0
  926. Text97
  927.     dc.b    "You picked this mode:",10
  928.     dc.b    "ModeID  : 0x%lx",10
  929.     dc.b    "Size    : %ld x %ld",10
  930.     dc.b    "Depth   : %ld",10
  931.     dc.b    "Overscan: %ld",10
  932.     dc.b    "AutoScroll %s",0
  933. Text98
  934.     dc.b    "You didn't pick a screen mode.",0
  935. Text99
  936.     dc.b    "That's it!",10
  937.     dc.b    "Hope you enjoyed the demo",0
  938. Text100
  939.     dc.b    "_Sure did",0
  940. TagText1
  941.     dc.b    " _Ok |New _2.0 feature!|_Cancel",0
  942. TagText2
  943.     dc.b    "These are two new features of ReqTools 2.0:",10
  944.     dc.b    "Text above the entry gadget and more than",10
  945.     dc.b    "one response gadget.",0
  946. TagText3
  947.     dc.b    " _Ok |_Abort|_Cancel",0
  948. TagText4
  949.     dc.b    "New is also the ability to switch off the",10
  950.     dc.b    "backfill pattern.  You can also center the",10
  951.     dc.b    "text above the entry gadget.",10
  952.     dc.b    "These new features are also available in",10
  953.     dc.b    "the rtGetLong() requester.",0
  954.  
  955.     cnop    0,2
  956. Tags1
  957.     dc.l    RTGS_GadFmt,TagText1
  958.     dc.l    RTGS_TextFmt,TagText2
  959.     dc.l    TAG_MORE,undertag
  960.     dc.l    TAG_END
  961. Tags2
  962.     dc.l    RTGS_GadFmt,TagText3
  963.     dc.l    RTGS_TextFmt,TagText4
  964.     dc.l    RTGS_BackFill,FALSE
  965.     dc.l    RTGS_Flags,GSREQF_CENTERTEXT+GSREQF_HIGHLIGHTTEXT
  966.     dc.l    TAG_MORE,undertag
  967.     dc.l    TAG_END
  968. Tags3
  969.     dc.l    RTGL_ShowDefault,FALSE
  970.     dc.l    RTGL_Min,0
  971.     dc.l    RTGL_Max,666
  972.     dc.l    TAG_END
  973. Tags4
  974.     dc.l    RTEZ_DefaultResponse,4
  975.     dc.l    TAG_END
  976. Tags6
  977.     dc.l    RT_IDCMPFlags,DISKINSERTED
  978. Tags5
  979.     dc.l    RT_Underscore,'_'
  980.     dc.l    TAG_END
  981. Tags7
  982.     dc.l    RT_ReqPos,REQPOS_TOPLEFTSCR
  983.     dc.l    RT_Underscore,'_'
  984.     dc.l    TAG_END
  985. Tags8
  986.     dc.l    RT_ReqPos,REQPOS_CENTERSCR
  987.     dc.l    TAG_END
  988. Tags9
  989.     dc.l    RTFI_Flags,FREQF_MULTISELECT
  990.     dc.l    TAG_END
  991. Tags10
  992.     dc.l    RTFI_Flags,FREQF_NOFILES
  993.     dc.l    TAG_END
  994. Tags11
  995.     dc.l    RTFI_VolumeRequest,0
  996.     dc.l    TAG_END
  997. Tags12
  998.     dc.l    RTSC_Flags,SCREQF_DEPTHGAD+SCREQF_SIZEGADS+SCREQF_AUTOSCROLLGAD+SCREQF_OVERSCANGAD
  999.     dc.l    TAG_END
  1000. undertag
  1001.     dc.l    RT_Underscore,'_'
  1002. DosLib
  1003.     dc.b    "dos.library",0
  1004. ReqName
  1005.     REQTOOLSNAME
  1006.     cnop    0,2
  1007. Null
  1008.     dc.l    0
  1009. DosBase
  1010.     ds.l    1
  1011. ReqBase
  1012.     ds.l    1
  1013. Buffer
  1014.     ds.b    128
  1015. Array
  1016.     ds.l    6
  1017. LongNum
  1018.     ds.l    1
  1019. filereq
  1020.     ds.l    1
  1021. flist
  1022.     ds.l    1
  1023. fontreq
  1024.     ds.l    1
  1025. scrmodereq
  1026.     ds.l    1
  1027. filename
  1028.     ds.b    34
  1029.  
  1030.     END
  1031.